package com.kent.internet;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

/**
 * Notice: 仅包西欧字符的普通字符串和application/x-www-form-urlencoded MIDE字符串无需转换，而包含中文字符的普通字符串则需要转换，转换方法是每个中文字符占两个字节，每个字节可以转换成两个十六进制的数字，所以每个中文字符将转换成"%XX%XX"的形式。当然，采用不同的字符集时，每个中文字符对应的字节数不完全相同，所以使用URLEncoder和URLDecoder进行转换时也需要指定字符集。
 *
 * @author kent_sun
 * @version 1.0
 * @date 2021/4/29
 * @since 1.0
 */
public class URLDecoderTest {
    public static void main(String[] args) throws UnsupportedEncodingException {
        // 将application/x-www-form-urlencoded字符串转换为普通字符串
        String keyWord = URLDecoder.decode("%E7%96%AF%E7%8B%82java", "utf-8");
        System.out.println(keyWord);
        System.out.println(URLDecoder.decode("%B7%E8%BF%F1Android%BD%B2%D2%E5", "GBK"));
        // 将普通字符串转换成 application/x-www-form-urlencoded字符串
        String urlStr = URLEncoder.encode("疯狂Android讲义", "GBK");
        System.out.println(urlStr);
    }
}
